home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Assassins - Ultimate CD Games Collection 1
/
Assassins - Ultimate CD Games Collection (1994)(Weird Science)(Track 1 of 2)[!][Amiga-CD32-CDTV][CDD5332].iso
/
cards-&-quiz
/
pontoon
/
pontoon.amos
/
pontoon.amosSourceCode
< prev
Wrap
AMOS Source Code
|
1992-09-02
|
41KB
|
1,244 lines
' Pontoon by Chris Labrum. Copyright 199O
Set Buffer 20 : Close Workbench : Close Editor : Hide
Break Off
DNAME$="" : TITLE$="Title"
Global DNAME$,TITLE$
Screen Open 1,640,256,16,Hires : Flash Off : Curs Off
On Error Proc HANDLEIT : Auto View Off
Flash Off : Curs Off : Unpack 1 To 1
CDXSZ=112 : CDYSZ=91 : MAKEAREAX=500 : MAKEAREAY=4
JY=1 : PILE=0 : Dim PILE(52),DPILE(52)
MOSTPLAY=4 : FULLHAND=5 : ACTPLAY=MOSTPLAY : HANDSTART=2
Dim PX(MOSTPLAY,FULLHAND),PY(MOSTPLAY,FULLHAND)
Dim PXP(MOSTPLAY),PYP(MOSTPLAY),PYP2(MOSTPLAY)
Dim ACTHAND(MOSTPLAY,FULLHAND),HAND(MOSTPLAY),FACE(MOSTPLAY),CASH(MOSTPLAY)
Dim CURRENCY$(1) : CURRENCY$(1)="�" : CURRENCY$(0)="$" : CURRENCY=1
THROWOUT=1 : Dim THROW(52) : THROWFACE=0 : THROW=0 : BET=0 : POT=0
PILEX=522 : PILEY=160 : THROWX=PILEX-CDXSZ : THROWY=PILEY
CSPACE=14 : GAPX=2 : GAPY=64
DEALTO=1 : TURN=1 : Dim HANDVAL(MOSTPLAY),HANDVALMAX(MOSTPLAY)
HOLD1=2500-2500 : HOLD2=50000 : HOLD3=10000-10000
Dim PNAME$(MOSTPLAY)
PNAME$(1)="CHRIS" : PNAME$(2)="TOM"
PNAME$(3)="DICK" : PNAME$(4)="HARRY"
MESSX=11 : MESSY=128
PICKUP=0 : Dim PICKUP(MOSTPLAY*FULLHAND)
PICKUPX=THROWX-CDXSZ : PICKUPY=PILEY
WANTIT=0
Dim CARDVAL(52),PCARD(MOSTPLAY,FULLHAND)
N=1 : For A=1 To 52
CARDVAL(A)=N : If CARDVAL(A)>10 : CARDVAL(A)=10 : End If
Inc N : If N>13 : N=1 : End If
Next A
SHUFFLE=0
Dim INPLAY(MOSTPLAY),WINNER(MOSTPLAY)
WIN=0 : WIN$="" : WIN1$="" : WINNER$=""
ILL$="-: "+Chr$(34)+"I"+Chr$(180)+"ll" : IV$=Chr$(34)
Dim GAMES(MOSTPLAY),USER(MOSTPLAY)
USER(1)=1
For A=1 To MOSTPLAY : FACE(A)=1
If USER(A)=1 : FACE(A)=0 : End If
Next A
JSX=300 : JSY=MESSY+64
Restore OPTIONDATA : Read OPTIONS
Dim OPTION$(OPTIONS),OPTION(OPTIONS),OPTSELECT$(OPTIONS,2)
For A=1 To OPTIONS : Read OPTION$(A)
For B=0 To 1 : Read OPTSELECT$(A,B)
Next B : Next A
OPTION(1)=1
OPTX=240 : OPTY=MESSY+31 : JGUIDE=1 : AUTO=0 : AGAIN=0 : NUMCHANGE=0
STAKE=500 : BETMIN=50 : BETMAX=200 : KITTY=0 : POTX=OPTX+180 : POTY=OPTY+1
BUY=10 : POTSTAY=0 : Dim BROKE(MOSTPLAY)
NOWAIT=0 : NEWGAME=0 : HIGH=0 : LOW=0 : SHUFFLESHOW=1 : BETTER$="" : THEINST=0
ZERO$=""
Global HIGH,LOW,BETTER$,BUY,SHUFFLESHOW,ZERO$
Global BROKE(),NOWAIT,NEWGAME
Global KITTY,POTX,POTY,POTSTAY
Global JGUIDE,AUTO,AGAIN,NUMCHANGE
Global OPTX,OPTY,OPTIONS,OPTION$(),OPTION(),OPTSELECT$()
Global USER(),JSX,JSY
Global WIN,WINNER(),WIN$,WIN1$,WINNER$,ILL$,IV$,GAMES()
Global WANTIT,CARDVAL(),PCARD(),SHUFFLE,INPLAY()
Global PICKUP,PICKUP(),PICKUPX,PICKUPY
Global PNAME$(),MESSX,MESSY
Global HOLD1,HOLD2,HOLD3
Global DEALTO,TURN,HANDVAL(),HANDVALMAX()
Global ACTHAND(),HAND(),FACE(),CASH(),CURRENCY$(),CURRENCY
Global THROWOUT,THROWX,THROWY,THROW,THROW(),THROWFACE
Global BET,POT,BETMIN,BETMAX,STAKE
Global MOSTPLAY,ACTPLAY,PX(),PY(),PXP(),PYP(),PYP2()
Global FULLHAND,CSPACE,GAPX,GAPY
Global HANDSTART,PILEX,PILEY,PILE,PILE(),DPILE()
Global CDXSZ,CDYSZ,MAKEAREAX,MAKEAREAY,JY
MAKECARDS : Palette $80 : CARDPOS : Cls 0
Unpack 2 To 1 : View : Auto View On
Bell : WFIRE
Cls 0 : NEWPACK
DEMO : FSHUFFLE : INITCASH
For A=1 To MOSTPLAY : INPLAY(A)=1 : Next A
OPTIONLOAD : POTSHOW
Do
For TURN=1 To ACTPLAY : INFOSHOW : Next TURN
CHECKIFBROKE
For A=1 To ACTPLAY
If AGAIN=0 and CASH(A)>0
INPLAY(A)=1
End If
Next A
MAINDEAL : PILEON
For TURN=1 To ACTPLAY
If INPLAY(TURN)=1
CVALSORT : SAMEKINDACESRIGHT : PICKUPHAND : RESHOWHAND
End If
Next TURN
Repeat
If INPLAY(DEALTO)=0 : DEALTOADD : End If
Until INPLAY(DEALTO)=1
If AGAIN=0 and USER(DEALTO)=1 and INPLAY(DEALTO)=1 : USERBET : End If
If AGAIN=0 and USER(DEALTO)=0 : KITTY : End If
TURN=DEALTO
CHECKIFPLAY
For REPTURN=1 To ACTPLAY
If INPLAY(TURN)=1 and USER(TURN)=1
�SHOWUSERVAL : Repeat
WANTIT=-1 : KLRJSTICK : TWISTSTICK : JSTICK1
Repeat
If Fire(JY)=-1
WANTIT=0 : Repeat : Until Fire(JY)=0
End If
If Jup(JY)=-1
WANTIT=1 : Repeat : Until Jup(JY)=0
End If
If Jdown(JY)=-1 : Repeat : Until Jdown(JY)=0
WANTIT=2
End If
Until WANTIT>-1
KLRJSTICK : CARRYOUT
CVALSORT : SAMEKINDACESRIGHT : RESHOWHAND : �SHOWUSERVAL
Until WANTIT=0 or HAND(TURN)=FULLHAND or HANDVAL(TURN)>21
KLRJSTICK : �SHOWSTICK
End If
If INPLAY(TURN)=1 and USER(TURN)=0
Repeat
TWISTSTICK
CHECKWANTIT
CARRYOUT
Until WANTIT=0 or HAND(TURN)=FULLHAND
�SHOWSTICK
End If
Inc TURN : If TURN>ACTPLAY : TURN=1 : End If
Next REPTURN
For TURN=1 To ACTPLAY
If INPLAY(TURN)=1
CVALSORT : SAMEKINDACESRIGHT
RVAR=FACE(TURN) : FACE(TURN)=0 : RESHOWHAND : FACE(TURN)=RVAR
HANDVALUE : �SHOWUSERVAL
End If
Next TURN
CHECKWINNER
KLRMESS
WINNER$="" : For A=1 To WIN
WINNER$=WINNER$+PNAME$(WINNER(A))+" And "
Next A : WINNER$=Left$(WINNER$,Len(WINNER$)-4)
ZERO$=WIN$ : If Len(ZERO$)<3 : ZERO : End If
WINNER$=WINNER$+"Win"+WIN1$+" With "+ZERO$
If WIN>1 : WINNER$=WINNER$+" And Replay" : End If
If WIN>1 and WIN<4 : WINNER$=WINNER$+" For The Pot!" : End If
If WIN>0 : Bell : Text MESSX,MESSY,WINNER$ : End If
If WIN=1
Add CASH(WINNER(1)),POT : KITTY=0 : POT=0 : TURN=WINNER(1) : INFOSHOW
BETTER$="" : BETPOTSHOW : DEALTO=WINNER(1)
End If
POTSTAY=0
If WIN=0 : POTSTAY=1 : Text MESSX,MESSY,"No Winner... The Pot STAYS!" : End If
If AUTO=1 or NOWAIT=1 : Bell : HOLD2 : End If
If AUTO=0 : JSTICK3 : End If
If AUTO=0 or Fire(JY)=-1
If AUTO=1 or Fire(JY)=-1 : Bell : NOWAIT=0 : JSTICK3 : NOFIRE : End If
If NOWAIT=0
Do
If Fire(JY)=-1 : KLRJSTICK : Exit : End If
If Jup(JY)=-1 : KLRJSTICK : OPTIONS : NOFIRE : JSTICK3 : End If
If Jleft(JY)=-1 : POTOFF : AUTHOR : POTSHOW : End If
If Jright(JY)=-1
THEINST=1 : KLRJSTICK
KLRMESS : Text MESSX,MESSY,"Instructions follow......"
HOLD2: Exit
End If
If Jdown(JY)=-1 : KLRJSTICK : NEWGAME
If NEWGAME=0 : JSTICK3 : End If
If NEWGAME=1 : Exit : End If
End If
Loop
End If
End If
KLRJSTICK
KLRUSERSHOW
If NEWGAME=0
PICKEMUP
If WIN<>1 : DEALTOADD : End If
CHECKWHO_OUT
If AGAIN=0 and POTSTAY=0 and NUMCHANGE>0
If NUMCHANGE>ACTPLAY
For TURN=ACTPLAY+1 To NUMCHANGE
CASH(TURN)=STAKE : INPLAY(TURN)=1 : INFOSHOW
Next TURN
End If
If NUMCHANGE<ACTPLAY
For TURN=NUMCHANGE+1 To ACTPLAY
CASH(TURN)=0 : INPLAY(TURN)=0 : INFOSHOW
Next TURN
End If
ACTPLAY=NUMCHANGE : DEALTO=1 : NUMCHANGE=0
KLRMESS : Text MESSX,MESSY,"Number Of Players Changed To"+Str$(ACTPLAY)
Bell : HOLD2
End If
If SHUFFLE=1 : FSHUFFLE : End If
End If
NEWGAME=0
If THEINST=1 : THEINST=0 : THEINSTRUCTIONS : End If
Loop
Procedure CHECKIFPLAY
C=0
For A=1 To ACTPLAY
If INPLAY(A)=1 and USER(A)=1
Inc C
End If
Next A
NOWAIT=0 : If C=0 : NOWAIT=1 : End If
End Proc
Procedure CHECKIFBROKE
For A=1 To ACTPLAY
If INPLAY(A)=1 and CASH(A)=0 and AGAIN=0 and POTSTAY=0
INPLAY(A)=0 : BROKE(A)=0
End If
Next A
C=0 : W=0
For A=1 To ACTPLAY
If CASH(A)>0 : Inc C : W=A : End If
Next A
If C=1 and AGAIN=0 and POTSTAY=0
M$=PNAME$(W)+" Wins This Game !"
If AUTO=0 : M$=M$+" : PRESS Fire For A NEW GAME" : End If
KLRMESS : Text MESSX,MESSY,M$
Add GAMES(W),1 : Bell
If AUTO=0 : WFIRE : End If
If AUTO=1 : HOLD2 : End If
GAMESHOW
INITCASH
For TURN=1 To ACTPLAY : BROKE(TURN)=1 : INPLAY(TURN)=1 : INFOSHOW : Next TURN
POTOFF : SHUFFLESHOW=1 : FSHUFFLE : POTSHOW : DEALTO=1
End If
End Proc
Procedure CHECKWHO_OUT
AGAIN=0
If WIN<2
For A=1 To ACTPLAY
If CASH(A)>0 and BROKE(A)=1 : INPLAY(A)=1 : End If
Next A
End If
If WIN>1
For A=1 To ACTPLAY : INPLAY(A)=0 : Next A
For A=1 To WIN : INPLAY(WINNER(A))=1 : Next A
AGAIN=1
End If
End Proc
Procedure HANDLEIT
KLRMESS
Text MESSX,MESSY,"PROGRAM ERROR!!!-: Error No."+Str$(Errn)
Stop
WFIRE
Resume Next
End Proc
Procedure NEWGAME
NEWGAME=0
KLRMESS
Repeat : Until Jup(JY)=0 and Jdown(JY)=0
Text MESSX,MESSY,"Joystick UP Confirms NEW GAME : DOWN aborts!"
Repeat
JU=Jup(JY) : JD=Jdown(JY)
Until JU=-1 or JD=-1
Repeat : Until Jup(JY)=0 and Jdown(JY)=0
KLRMESS
If JU=-1
If Fire(JY)=-1
Inc CURRENCY : If CURRENCY>1 : CURRENCY=0 : End If
NOFIRE
End If
C=0
For A=1 To ACTPLAY
If CASH(A)>C : C=CASH(A) : End If
Next A
M$=""
S$="" : K=0
For A=1 To ACTPLAY
If CASH(A)=C and USER(A)=0 : Inc K : Inc GAMES(A) : M$=M$+PNAME$(A)+" - " : End If
Next A
If K=1 : S$="s" : End If
If M$<>"" : M$=M$+"Win"+S$+" This GAME!" : End If
Bell : KLRMESS : Text MESSX,MESSY,"NEW GAME Selected : "+M$ : WFIRE
GAMESHOW : KLRJSTICK : KLRUSERSHOW
PICKEMUP : POT=0 : AGAIN=0 : POTSTAY=0 : DEALTO=1
POTSHOW : INITCASH
For TURN=1 To ACTPLAY
BROKE(TURN)=1 : INPLAY(TURN)=1 : INFOSHOW
Next TURN
Unpack 2 To 1 : WFIRE : Cls 0
POTOFF : SHUFFLESHOW=1 : FSHUFFLE : POTSHOW : NEWGAME=1
End If
End Proc
Procedure GAMESHOW
M$=""
For A=1 To MOSTPLAY
If GAMES(A)>0
ZERO$=Str$(GAMES(A)) : ZERO
M$=M$+PNAME$(A)+ZERO$+" "
End If
Next A
If M$<>""
KLRMESS : Text MESSX,MESSY,"GAMES WON-: "+M$ : Bell
If AUTO=0 : WFIRE : End If
If AUTO=1 : HOLD2 : End If
End If
End Proc
Procedure USERBET
JSTICK2 : KLRMESS : Text MESSX,MESSY,"Make Your Bet "+PNAME$(DEALTO)
HIGHLOW
L=(Len(PNAME$(DEALTO))+15)*8
LO=LOW
HI=BETMAX
If LOW>BETMIN : LO=BETMIN : End If
If HI>CASH(DEALTO) : HI=CASH(DEALTO) : End If
If HI>LOW : HI=LOW : End If
KITTY=LO
Ink 1,11
Do
K$=Str$(KITTY) : K$=Right$(K$,Len(K$)-1)
ZERO$=K$ : ZERO
Text POTX+12,POTY+83,"Bet "+CURRENCY$(CURRENCY)+ZERO$+Space$(3-Len(ZERO$))
If Jup(JY)=-1 and KITTY+10=<HI : Add KITTY,10 : HOLDCURS : End If
If Jdown(JY)=-1 and KITTY-10>=LO : Add KITTY,-10 : HOLDCURS : End If
If Jleft(JY)=-1 : KITTY=LO : End If
If Jright(JY)=-1 : KITTY=HI : End If
If Fire(JY)=-1 : NOFIRE : Exit : End If
Loop
If KITTY>LOW : KITTY=LOW : End If
HOLD3
BETTER$=PNAME$(DEALTO)
BETSPOTDO
KLRMESS : KLRJSTICK
End Proc
Procedure KITTY
KLRMESS : Text MESSX,MESSY,PNAME$(DEALTO)+" Bets ..."
TURN=DEALTO
HANDVALUE
H=HANDVAL(TURN)
HIGHLOW
Repeat
Randomize Timer : R=Rnd(BETMAX-BETMIN+1)+BETMIN : R$=Right$(Str$(R),1)
Until R$="0"
K=0
If H=200 : K=BETMAX : End If
If H>19 : K=BETMAX : End If
If H<20 : K=BETMIN : End If
If H<6 : K=R : End If
If K>LOW : K=LOW : End If
If K>BETMAX : K=BETMAX : End If
If K>CASH(TURN) : K=CASH(TURN) : End If
If LOW=0 : K=0 : End If
KITTY=K
K$=Str$(KITTY) : K$=Right$(K$,Len(K$)-1)
ZERO$=K$ : ZERO
Text MESSX,MESSY,PNAME$(DEALTO)+" Bets ..."+CURRENCY$(CURRENCY)+ZERO$
HOLD3
BETTER$=PNAME$(DEALTO)
BETSPOTDO
End Proc
Procedure ZERO
For ZA=1 To Len(ZERO$)
If Mid$(ZERO$,ZA,1)="0" : Mid$(ZERO$,ZA,1)="O" : End If
Next ZA
End Proc
Procedure BETSPOTDO
For TURN=1 To ACTPLAY
If INPLAY(TURN)=1
Add CASH(TURN),-KITTY : INFOSHOW : Add POT,KITTY
End If
Next TURN
BETPOTSHOW
End Proc
Procedure HIGHLOW
LOW=100000 : HIGH=0
For A=1 To ACTPLAY
If INPLAY(A)=1 and CASH(A)>HIGH : HIGH=CASH(A) : End If
If INPLAY(A)=1 and CASH(A)<LOW : LOW=CASH(A) : End If
Next A
End Proc
Procedure POTSHOW
Put Block 200,POTX,POTY
Put Block 200,POTX,POTY+30+21
Put Block 200,POTX,POTY+50+21
BETPOTSHOW
End Proc
Procedure BETPOTSHOW
Ink 1,11 : P$=Str$(POT) : P$=Right$(P$,Len(P$)-1)
K$=Str$(KITTY) : K$=Right$(K$,Len(K$)-1)
ZERO$=P$ : ZERO
Text POTX+12,POTY+12,"Pot "+CURRENCY$(CURRENCY)+ZERO$+Space$(4-Len(ZERO$))
Text POTX+12,POTY+63,BETTER$+Space$(9-Len(BETTER$))
ZERO$=K$ : ZERO
Text POTX+12,POTY+83,"Bet "+CURRENCY$(CURRENCY)+ZERO$+Space$(3-Len(ZERO$))
End Proc
Procedure POTOFF
Ink 0,0 : Bar POTX,POTY To POTX+100,POTY+89
End Proc
Procedure OPTIONSAVE
SV=0 : KLRMESS
Text MESSX,MESSY,"Save Options-: Hold DOWN Fire to ABORT Save"
TT=10 : F=0 : Ink 3,1
Repeat
Text 364,MESSY,Str$(TT)+" "
For T=1 To 10000 : Next T
Dec TT
Until TT=-1 or Fire(JY)=-1
If Fire(JY)=0
N=NUMCHANGE : If NUMCHANGE=0 : N=ACTPLAY : End If
Show On
On Error Goto PERROR1
Open Out 1,DNAME$+"Options"
Print #1,N
For A=1 To 8 : Print #1,OPTION(A) : Next A
For A=1 To 4 : Print #1,PNAME$(A) : Next A
Close 1
KLRMESS : Text MESSX,MESSY,"Options Saved"
For T=1 To 27000 : Next T
Goto FINSAVE
PERROR1:
KLRMESS : Text MESSX,MESSY,"Options NOT Saved !!!"
For T=1 To 27000 : Next T
Resume FINSAVE
FINSAVE:
On Error
End If
KLRMESS : NOFIRE
Hide On
End Proc
Procedure OPTIONLOAD
If Exist(DNAME$+"Options")=-1
LD=1
Open In 1,DNAME$+"Options"
Input #1,ACTPLAY
For A=1 To 8 : Input #1,OPTION(A) : Next A
For A=1 To 4 : Input #1,PNAME$(A) : Next A
Close 1
KLRMESS : Text MESSX,MESSY,"Options Loaded"
OPTIONDO
End If
End Proc
Procedure OPTIONS
POTOFF
KLRMESS : SV=0 : Y=OPTY : X=OPTX
For A=1 To OPTIONS
Ink 0,A : Text X,Y,OPTION$(A)
Ink 0,A : Text X+160,Y,OPTSELECT$(A,OPTION(A))
Add Y,9 : Next A
Y=OPTY : N=1
Do
Ink 11,0 : Text X+160,Y,OPTSELECT$(N,OPTION(N))
For T=1 To 500 : Next T
Ink 0,N : Text X+160,Y,OPTSELECT$(N,OPTION(N))
For T=1 To 500 : Next T
If OPTION(5)=1 : OPTION(5)=0 : USERNAME : NOFIRE : End If
If OPTION(9)=1 : OPTION(9)=0 : NUMPLAY : NOFIRE : End If
If OPTION(OPTIONS)=1 : OPTION(OPTIONS)=0 : Exit : End If
If OPTION(OPTIONS-1)=1 : OPTION(OPTIONS-1)=0 : SV=1 : Exit : End If
If Jup(JY)=-1 and N>1 : Dec N : Add Y,-9 : End If
If Jdown(JY)=-1 and N<OPTIONS : Inc N : Add Y,9 : End If
If Fire(JY)=-1 : WFIRE
Inc OPTION(N) : If OPTION(N)>1 : OPTION(N)=0 : End If
End If
Loop
OPTIONDO
KLROPTIONS
POTSHOW
If SV=1 : OPTIONSAVE : End If
End Proc
Procedure OPTIONDO
C=0
For A=1 To ACTPLAY
FACE(A)=1 : USER(A)=OPTION(A)
If USER(A)=1 : FACE(A)=0 : End If
If USER(A)=0 : Inc C : End If
Next A
AUTO=0
If C=ACTPLAY
AUTO=1 : KLRMESS
Text MESSX,MESSY,"AUTOPLAY now ON!: Hold DOWN Fire during game to abort"
End If
SHUFFLE=0 : If OPTION(6)=1 : SHUFFLE=1 : End If
JGUIDE=1 : If OPTION(7)=1 : JGUIDE=0 : End If
HOLD1=2500 : HOLD3=10000
If OPTION(8)=1 : HOLD1=0 : HOLD3=0 : End If
End Proc
Procedure NUMPLAY
NUMCHANGE=0
Bell : Ink 3,1 : N=ACTPLAY
X=OPTX : Y=OPTY-9
Do
Text X,Y,Str$(N)+" Players "
If Jup(JY)=-1 and N<MOSTPLAY : Inc N : HOLDCURS : End If
If Jdown(JY)=-1 and N>2 : Dec N : HOLDCURS : End If
If Fire(JY)=-1 : Exit : End If
Loop
Ink 0,0 : Text X,Y,Space$(12)
If N<>ACTPLAY
NUMCHANGE=N : Bell : NOFIRE
End If
If NUMCHANGE=2 and BROKE(3)=0 and BROKE(4)=0 and CASH(1)=0 and CASH(2)=0
NUMCHANGE=0 : Ink 1,0 : Text X,Y,"Sorry ... Not Available!"
WFIRE : Ink 0,0 : Text X,Y,Space$(26)
End If
End Proc
Procedure USERNAME
For A=1 To ACTPLAY
L=1 : X=OPTX : Y=OPTY-10
XX=X : YY=Y
X=X+11*8 : N$=Space$(9)
Ink 1,1
Text XX,YY,Space$(28)
Ink 11,1 : Text XX,YY,PNAME$(A) : CH=65
Bell
Do
Text X,Y," " : HOLDCURS
PS=CH : If PS=64 : PS=95 : End If
Text X,Y,Chr$(PS) : HOLDCURS
If Jup(JY)=-1 and CH<90 : Inc CH : End If
If Jdown(JY)=-1 and CH>64 : Dec CH : End If
If Jright(JY)=-1 and L<9
Mid$(N$,L)=Chr$(CH) : Inc L : Add X,8
CH=Asc(Mid$(N$,L)) : If CH=32 : CH=64 : End If
End If
If Jleft(JY)=-1 and L>1
Mid$(N$,L)=Chr$(CH) : Dec L : Add X,-8
CH=Asc(Mid$(N$,L)) : If CH=32 : CH=65 : End If
End If
If Fire(JY)=-1 : Mid$(N$,L)=Chr$(CH) : Exit : End If
Loop
For AA=1 To Len(N$)
If Mid$(N$,AA,1)="@" : Mid$(N$,AA,1)=" " : End If
Next AA
Repeat
If Left$(N$,1)=" " : N$=Right$(N$,Len(N$)-1) : End If
Until Left$(N$,1)<>" "
Repeat
If Right$(N$,1)=" " : N$=Left$(N$,Len(N$)-1) : End If
Until Right$(N$,1)<>" "
If Len(N$)>1
PNAME$(A)=N$
RVAR=TURN : TURN=A : INFOSHOW : TURN=RVAR
End If
Next A
Ink 0,0 : Bar OPTX,OPTY-20 To OPTX+223,OPTY-8
End Proc
Procedure HOLDCURS
For T=1 To 900 : Next T
End Proc
Procedure KLROPTIONS
Ink 0,0 : Bar OPTX,OPTY-7 To OPTX+223,OPTY+100
End Proc
Procedure KLRJSTICK
Ink 0,0 : Bar JSX-56,JSY-16 To JSX+112,JSY+27
End Proc
Procedure JSTICK1
If JGUIDE=1
X=JSX : Y=JSY
J1$=" TWIST "
J2$=" STICK "
J3$=" BUY "
J6$="J/Stick"
J7$="Control"
Ink 1,13 : Text X,Y-8,J1$
Ink 1,3 : Text X,Y,J2$
Ink 1,14 : Text X,Y+8,J3$
Ink 11,12 : Text X,Y+18,J6$
Ink 11,12 : Text X,Y+26,J7$
End If
End Proc
Procedure JSTICK2
If JGUIDE=1
X=JSX : Y=JSY
J1$=" +1O "
J2$=" END "
J3$=" -1O "
J5$="Minimum"
J4$="Maximum"
J6$="J/Stick"
J7$="Control"
Ink 1,13 : Text X,Y-8,J1$
Ink 1,3 : Text X,Y,J2$
Ink 1,14 : Text X,Y+8,J3$
Ink 1,14 : Text X+56,Y,J4$
Ink 1,13 : Text X-56,Y,J5$
Ink 11,12 : Text X,Y+18,J6$
Ink 11,12 : Text X,Y+26,J7$
End If
End Proc
Procedure JSTICK3
If JGUIDE=1
X=JSX : Y=JSY
J1$="Options"
J2$=" Cont "
J3$="NewGame"
J4$=" Instr "
J5$="Author "
J6$="J/Stick"
J7$="Control"
Ink 1,13 : Text X,Y-8,J1$
Ink 1,3 : Text X,Y,J2$
Ink 1,14 : Text X,Y+8,J3$
Ink 1,14 : Text X+56,Y,J4$
Ink 1,13 : Text X-56,Y,J5$
Ink 11,12 : Text X,Y+18,J6$
Ink 11,12 : Text X,Y+26,J7$
End If
End Proc
Procedure AUTHOR
KLRJSTICK
X=OPTX : Y=OPTY
Ink 10,10 : Bar X,Y To X+230,Y+90
Ink 1,10 : Box X,Y To X+230,Y+90
Ink 9,10 : Bar X+10,Y+10 To X+230-10,Y+90-10
Ink 1,10 : Box X+10,Y+10 To X+230-10,Y+90-10
Ink 8,10 : Bar X+20,Y+65 To X+230-20,Y+98-20
Ink 1,10 : Box X+20,Y+65 To X+230-20,Y+98-20
Ink 1,9 : Text X+30,Y+20,"Author-: Chris Labrum"
Ink 11,9 : Text X+21,Y+30,"This program is written"
Ink 11,9 : Text X+21,Y+39,"entirely in AMOS Basic."
Ink 12,9 : Text X+21,Y+48,"Thanks to Don and Pat"
Ink 12,9 : Text X+21,Y+57,"Pearson for testing it!"
Ink 1,8 : Text X+41,Y+74," Copyright 199O"
WFIRE
Ink 0,0 : Bar X,Y To X+230,Y+90
JSTICK3
End Proc
Procedure THEINSTRUCTIONS
Restore INSTDATA : Cls 1 : Locate 0,1
Repeat
For A=1 To 15
If D$<>"DONE" : Read D$ : End If
If D$<>"DONE" : Print Space$(1);D$ : Print : End If
Next A
Repeat : Until Fire(JY)=-1
If D$<>"DONE" : Cls 1 : Locate 0,1 : End If
Until D$="DONE" or Jup(JY)=-1
Repeat : Until Jup(JY)=-1
Cls 0
POTSHOW
End Proc
Procedure CARRYOUT
KLRMESS
If WANTIT=2
BUY1 : Text MESSX,MESSY,PNAME$(TURN)+ILL$+" BUY One!"+IV$
RVAR=FACE(TURN)
If USER(TURN)=0 : FACE(TURN)=1 : End If
DEALONE : FACE(TURN)=RVAR
HOLD1 : HOLD1
End If
If WANTIT=1
Text MESSX,MESSY,PNAME$(TURN)+ILL$+" Twist!"+IV$
RVAR=FACE(TURN) : FACE(TURN)=0 : DEALONE : FACE(TURN)=RVAR
HOLD1: HOLD1
End If
If WANTIT=0
Text MESSX,MESSY,PNAME$(TURN)+ILL$+" Stick"+IV$
End If
If USER(TURN)=0 : HOLD3 : End If
KLRMESS
End Proc
Procedure CHECKWINNER
For TURN=1 To ACTPLAY
WINNER(TURN)=0 : HANDVALUE : HANDVALUEMAX
If HANDVAL(TURN)<15 and HANDVALMAX(TURN)<22
HANDVAL(TURN)=HANDVALMAX(TURN)
End If
Next TURN
For A=1 To ACTPLAY
If INPLAY(A)=0 or HANDVAL(A)<15 : HANDVAL(A)=0 : End If
If HANDVAL(A)>21 and HANDVAL(A)<100 : HANDVAL(A)=0 : End If
Next A
WIN$="" : WIN=0 : For A=1 To ACTPLAY
If HANDVAL(A)=200 : Inc WIN : WINNER(WIN)=A : WIN$="PONTOON" : End If
Next A
If WIN=0
For A=1 To ACTPLAY
If HANDVAL(A)=100 : Inc WIN : WINNER(WIN)=A : WIN$="A 5 CARD TRICK" : End If
Next A
End If
If WIN=0
SCORE=21
Repeat
For A=1 To ACTPLAY
If HANDVAL(A)=SCORE
Inc WIN : WINNER(WIN)=A : WIN$=Str$(SCORE) : WIN$=Right$(WIN$,Len(WIN$)-1)
End If
Next A : Dec SCORE
Until WIN>0 or SCORE=14
End If
WIN1$="s"
If WIN>1
WIN1$=""
End If
End Proc
Procedure TWISTSTICK
KLRMESS : Text MESSX,MESSY,"Another Card, "+PNAME$(TURN)+"?" : HOLD3
End Proc
Procedure CHECKWANTIT
HANDVALUE : HANDVALUEMAX
H=HANDVAL(TURN)
If H<16 : WANTIT=1 : End If
If H>15 : WANTIT=0 : End If
If CASH(TURN)>=BUY and H<19 and HAND(TURN)=4 and TURN<ACTPLAY : WANTIT=2 : End If
If CASH(TURN)<BUY and H<19 and HAND(TURN)=4 and TURN<ACTPLAY : WANTIT=1 : End If
End Proc
Procedure BUY1
Add CASH(TURN),-BUY : INFOSHOW : Add POT,BUY : BETPOTSHOW
End Proc
Procedure PICKUPOFF
Ink 0 : Bar PICKUPX,PICKUPY To PICKUPX+CDXSZ-1,PICKUPY+CDYSZ-1
End Proc
Procedure PILESHOW
ZERO$=Str$(PILE) : ZERO
Ink 1,0 : Text PILEX+28,PILEY-4,"PACK"+ZERO$+Space$(1)
End Proc
Procedure THROWSHOW
Ink 1,0 : Text THROWX+28,THROWY-4,"PILE"+Str$(THROW)+Space$(1)
End Proc
Procedure KLRMESS
Ink 0,0 : Text MESSX,MESSY,Space$(80) : Ink 1,0
End Proc
Procedure INITCASH
For A=1 To ACTPLAY : CASH(A)=STAKE : Next A
BET=0 : POT=0
End Proc
Procedure INFOSHOW
Ink 1,0 : Text PXP(TURN),PYP(TURN),PNAME$(TURN)+Space$(9-Len(PNAME$(TURN)))
Ink 11,0 : C$=Str$(CASH(TURN)) : C$=Right$(C$,Len(C$)-1)
ZERO$=C$ : ZERO
Text PXP(TURN)+80,PYP(TURN),"CASH "+CURRENCY$(CURRENCY)+ZERO$+Space$(6-Len(ZERO$))
End Proc
Procedure �SHOWSTICK
Ink 0,0 : Text PXP(TURN),PYP2(TURN),Space$(17)
Ink 1,3 : Text PXP(TURN),PYP2(TURN)," STICK "
End Proc
Procedure �SHOWUSERVAL
HANDVALUE : HANDVALUEMAX
H=HANDVAL(TURN) : H2=HANDVALMAX(TURN)
B=H
If H2<22 : B=H2 : End If
B$=Str$(B) : If B>21 : B$=" BUST!" : End If
If H=100 : B$=" 5 CARD TRICK" : End If
If H=200 : B$=" PONTOON" : End If
Ink 0,0 : Text PXP(TURN),PYP2(TURN),Space$(17)
ZERO$=B$ : If Len(B$)<4 : ZERO : End If
Ink 3,1 : Text PXP(TURN),PYP2(TURN),ZERO$+" "
End Proc
Procedure KLRUSERSHOW
Ink 0,0
For A=1 To ACTPLAY : Text PXP(A),PYP2(A),Space$(19) : Next A
End Proc
Procedure HANDVALUE
HANDVAL(TURN)=0
For B=1 To HAND(TURN)
Add HANDVAL(TURN),PCARD(TURN,B)
Next B
If HAND(TURN)=2
If PCARD(TURN,1)=1 and PCARD(TURN,2)=10 : HANDVAL(TURN)=200 : End If
If PCARD(TURN,2)=1 and PCARD(TURN,1)=10 : HANDVAL(TURN)=200 : End If
End If
If HAND(TURN)=5 and HANDVAL(TURN)<22
HANDVAL(TURN)=100
End If
End Proc
Procedure HANDVALUEMAX
HANDVALUE : HANDVALMAX(TURN)=HANDVAL(TURN)
For B=1 To HAND(TURN)
If HANDVALMAX(TURN)+10<22
If PCARD(TURN,B)=1
Add HANDVALMAX(TURN),10
End If
End If
Next B
End Proc
Procedure HANGON
For T=1 To 500 : Next T
End Proc
Procedure PICKUPHAND
For B=HAND(TURN) To 1 Step -1
Ink 0 : Bar PX(TURN,B),PY(TURN,B) To PX(TURN,B)+CDXSZ-1,PY(TURN,B)+CDYSZ-1
If B>1 and FACE(TURN)=0 : Put Block ACTHAND(TURN,B-1),PX(TURN,B-1),PY(TURN,B-1) : End If
If B>1 and FACE(TURN)=1 : Put Block 53,PX(TURN,B-1),PY(TURN,B-1) : End If
Next B
End Proc
Procedure RESHOWHAND
For A=1 To HAND(TURN)
If FACE(TURN)=0 : Put Block ACTHAND(TURN,A),PX(TURN,A),PY(TURN,A) : End If
If FACE(TURN)=1 : Put Block 53,PX(TURN,A),PY(TURN,A) : End If
Next A
End Proc
Procedure CVALSORT
For A=1 To HAND(TURN) : DPILE(A)=ACTHAND(TURN,A) : Next A
N=1
For A=1 To 13
For B=1 To HAND(TURN) : V=DPILE(B)
If V=A or V=A+13 or V=A+26 or V=A+39
If N<=HAND(TURN) : ACTHAND(TURN,N)=V : DPILE(B)=0 : Inc N : End If
End If
Next B
Next A
HOLD1
End Proc
Procedure SAMEKINDACESRIGHT
For A=1 To HAND(TURN) : C=ACTHAND(TURN,1)
If C=1 or C=14 or C=27 or C=40
For B=1 To HAND(TURN)-1
ACTHAND(TURN,B)=ACTHAND(TURN,B+1)
Next B
ACTHAND(TURN,HAND(TURN))=C
End If
Next A
End Proc
Procedure CSUITSORT
For A=1 To HAND(TURN) : DPILE(A)=ACTHAND(TURN,A) : Next A
N=1
For A=1 To 52
For B=1 To HAND(TURN) : V=DPILE(B)
If V=A
If N<=HAND(TURN) : ACTHAND(TURN,N)=V : DPILE(B)=0 : Inc N : End If
End If
Next B
Next A
HOLD1
End Proc
Procedure SUITACESRIGHT
N=1
Repeat
For A=1 To HAND(TURN)
If ACTHAND(TURN,A)=N
If A<HAND(TURN)
If ACTHAND(TURN,A+1)>N and ACTHAND(TURN,A+1)<N+13
Swap ACTHAND(TURN,A),ACTHAND(TURN,A+1)
End If
End If
End If
Next A
Add N,13
Until N>40
End Proc
Procedure DEALTOADD
Inc DEALTO : If DEALTO>ACTPLAY : DEALTO=1 : End If
End Proc
Procedure DEALONE
PLUP : N=TURN : Inc HAND(N) : B=HAND(N)
If FACE(N)=0 : Put Block PILE(PILE),PX(N,B),PY(N,B) : End If
If FACE(N)=1 : Put Block 53,PX(N,B),PY(N,B) : End If
ACTHAND(N,B)=PILE(PILE) : PCARD(N,B)=CARDVAL(PILE(PILE))
Dec PILE : PILESHOW
HOLD1
End Proc
Procedure PLUP
Play 1,30,0
End Proc
Procedure MAINDEAL
KLRMESS : Ink 1,0 : Text MESSX,MESSY,"Main Deal..."
N=DEALTO
For A=1 To ACTPLAY : HAND(A)=0 : Next A
For B=1 To HANDSTART
For A=1 To ACTPLAY
If INPLAY(N)=1
PLUP
If FACE(N)=0 : Put Block PILE(PILE),PX(N,B),PY(N,B) : End If
If FACE(N)=1 : Put Block 53,PX(N,B),PY(N,B) : End If
ACTHAND(N,B)=PILE(PILE) : PCARD(N,B)=CARDVAL(PILE(PILE))
Dec PILE : PILESHOW
End If
Inc N : If N>ACTPLAY : N=1 : End If
HOLD1
Next A
Next B
For A=1 To ACTPLAY : If INPLAY(A)=1 : HAND(A)=HANDSTART : End If : Next A
KLRMESS
End Proc
Procedure PICKEMUP
KLRMESS : Ink 1,0 : Text MESSX,MESSY,"Collecting Cards"
PICKUP=0 : A=1
For AA=1 To ACTPLAY
For B=HAND(A) To 1 Step -1
If INPLAY(A)=1
Ink 0 : Bar PX(A,B),PY(A,B) To PX(A,B)+CDXSZ-1,PY(A,B)+CDYSZ-1
If B>1 : Put Block ACTHAND(A,B-1),PX(A,B-1),PY(A,B-1) : End If
Inc PICKUP : PICKUP(PICKUP)=ACTHAND(A,B)
Put Block PICKUP(PICKUP),PICKUPX,PICKUPY
Dec HAND(A)
End If
HOLD1 : Next B
Inc A : If A>ACTPLAY : A=1 : End If
Next AA : HOLD3
KLRMESS : Ink 1,0 : Text MESSX,MESSY,"Cards To Bottom Of Pack"
CARDSTOBOTTOM
End Proc
Procedure CARDSTOBOTTOM
C=PICKUP
For A=1 To PICKUP
For B=52 To 2 Step -1
PILE(B)=PILE(B-1)
Next B
PILE(1)=PICKUP(A) : Dec C
If C>1 : Put Block PICKUP(C-1),PICKUPX,PICKUPY : End If
Inc PILE : PILESHOW
Next A
KLRMESS
PICKUP=0
PICKUPOFF
End Proc
Procedure HOLD1
For T=1 To HOLD1 : Next T
End Proc
Procedure HOLD2
For T=1 To HOLD2 : Next T
End Proc
Procedure HOLD3
For T=1 To HOLD3 : Next T
End Proc
Procedure PILEON
Put Block 53,PILEX,PILEY
End Proc
Procedure PILEOFF
Ink 0 : Bar PILEX,PILEY To PILEX+CDXSZ-1,PILEY+CDYSZ-1
End Proc
Procedure CARDPOS
Cls 0 : X=14 : PY=160 : CD=1
For A=1 To ACTPLAY : N=1
For XX=X To X+(FULLHAND-1)*CSPACE Step CSPACE
'Put Block CD,XX,PY
PX(A,N)=XX : PY(A,N)=PY
Inc CD : Inc N
Next XX
PXP(A)=X : PYP(A)=PY+CDYSZ+8
PYP2(A)=PY+CDYSZ+17
If A=1 : PYP(A)=PY-3 : PYP2(A)=PY-13 : End If
X=XX+CDXSZ+GAPX
If A=1
X=14
Add PY,-(CDYSZ+GAPY)
End If
Next A
End Proc
Procedure WFIRE
Repeat : Until Fire(JY)=-1
Repeat : Until Fire(JY)=0
End Proc
Procedure NOFIRE
Repeat : Until Fire(JY)=0
End Proc
Procedure PSHUFFLE
End Proc
Procedure SHUFFLER
Shared HOLD1
PILEOFF
X=10 : YY=130
If SHUFFLESHOW=1
POTOFF
For A=1 To 52
Put Block PILE(A),X,PILEY
Add X,10
Next A : Add X,-10 : HOLD1
Repeat : Until Fire(JY)=0
For A=1 To 52
Put Block 53,X,PILEY
Add X,-10
Next A : Add X,10 : Ink 0,0 : HOLD1
For A=1 To 52
Bar X,PILEY To X+CDXSZ-1,PILEY+CDYSZ-1
If A<52 : Put Block 53,X+10,PILEY : End If
Add X,10
Next A : HOLD1
End If
For REP=1 To 3
For A=1 To 52
X=Rnd(10) : Y=Rnd(6)
Put Block 53,260+X,YY+Y
Next A
Ink 0,0 : Bar 260,YY To 260+CDXSZ+20,YY+CDYSZ+10
Put Block 53,260,YY : HOLD3
Next REP
Bar 260,YY To 260+CDXSZ+20,YY+CDYSZ+10
SHUFFLESHOW=0
End Proc
Procedure FSHUFFLE
PILEOFF : KLRMESS : Ink 1,0 : Text MESSX,MESSY,"Shuffling Pack"
SHUFFLER
NEWPACK
For A=1 To 52 : DPILE(A)=PILE(A) : PILE(A)=0 : Next A
A=1
Repeat
Randomize Timer : R=Rnd(51)+1
If DPILE(R)>0 : PILE(A)=DPILE(R) : DPILE(R)=0 : Inc A : End If
Until A=53
KLRMESS : PILE=52 : PILEON : PILESHOW : POTSHOW
End Proc
Procedure NEWPACK
For A=1 To 52 : PILE(A)=A : Next A : PILE=52
End Proc
Procedure CARDPARTS
Screen Open 1,640,256,16,Hires
Flash Off : Curs Off
Load Iff "DF0:Pics/CardParts"
Get Palette 1
End Proc
Procedure JACK
Get Block 59,36+16,4+CDYSZ+2+8,CDXSZ-34,CDYSZ-16
Put Block 59,MAKEAREAX+15,MAKEAREAY+8
Del Block 59
End Proc
Procedure QUEEN
Get Block 59,36+16+CDXSZ*1+2,4+CDYSZ+2+8,CDXSZ-34,CDYSZ-16
Put Block 59,MAKEAREAX+15,MAKEAREAY+8
Del Block 59
End Proc
Procedure KING
Get Block 59,(36+CDXSZ*3+3)+21,11,CDXSZ-34,CDYSZ-16
Put Block 59,MAKEAREAX+15,MAKEAREAY+8
Del Block 59
End Proc
Procedure BLUEBACK
Get Block 53,36+CDXSZ*1+3,4,CDXSZ,CDYSZ
End Proc
Procedure REDBACK
Get Block 53,36+CDXSZ*2+6,4,CDXSZ,CDYSZ
End Proc
Procedure MAKECARDS
Get Block 200,521,26,94,19,1
Ink 0,0 : Bar 521,26 To 521+94,26+20
'Get 52 Blanks
For A=1 To 52
Get Block A,36,4,CDXSZ,CDYSZ
Next A
'Lge Numbers Normal 60-85
Restore NUMDATA : Y=190 : X=38
N=60 : For A=1 To 26
D=8 : If A=10 : D=15 : End If
If A=23 : D=15 : End If
Get Block N,X,Y,D,12,1
Put Block N,MAKEAREAX+30,MAKEAREAY+30
Read XX : Add X,XX
Inc N : Next A
'Lge Numbers Flipped 86-111
Restore NUMDATA : Y=202 : X=270
N=86 : For A=1 To 26
D=8 : DD=0 : If A=10 : D=14 : DD=6 : End If
If A=23 : D=14 : DD=6 : End If
Get Block N,X-DD,Y,D,12,1
Put Block N,MAKEAREAX+30,MAKEAREAY+30
Read XX : Add X,-XX
Inc N : Next A
'Large Suits 112-119
N=112 : X=36 : Y=216
For A=1 To 8
D=0 : If A=3 or A=4 or A=7 or A=8 : D=1 : End If
Get Block N,X,Y,17+D,16,1
Put Block N,MAKEAREAX+30,MAKEAREAY+30
Add X,17
If A=3 or A=4 or A=7 or A=8 : Add X,2 : End If
Inc N : Next A
'Small Suits 120-127
N=120 : X=37 : Y=236
For A=1 To 8
Get Block N,X,Y,11,12,1
Put Block N,MAKEAREAX+30,MAKEAREAY+30
Add X,12
Inc N : Next A
' Do Cards Red Numbers (1-26)
N1=60 : N2=86 : For A=1 To 26
S1=121 : S2=125 : If A>13 : S1=120 : S2=124 : End If
E=0 : DD=0 : D=0 : If A=10 or A=23 : D=6 : DD=2 : E=3 : End If
DDD=0 : If A>13 : DDD=1 : End If
Put Block A,MAKEAREAX,MAKEAREAY
Put Block N1,MAKEAREAX+4,MAKEAREAY+1
Put Block N2,MAKEAREAX+98-D,MAKEAREAY+76
Put Block S1,MAKEAREAX+3+DD,MAKEAREAY+13+DDD
Put Block S2,MAKEAREAX+96-D+E,MAKEAREAY+64+DDD
Get Block A,MAKEAREAX,MAKEAREAY,CDXSZ,CDYSZ
Inc N1 : Inc N2
If N1>72 : N1=60 : N2=86 : End If
Next A
' Do Cards Black Numbers (27-52)
N1=73 : N2=99 : For A=27 To 52
S1=122 : S2=126 : If A>39 : S1=123 : S2=127 : End If
E=0 : DD=0 : D=0 : If A=36 or A=49 : D=6 : DD=2 : E=3 : End If
DDD=0 : If A>13 : DDD=1 : End If
Put Block A,MAKEAREAX,MAKEAREAY
Put Block N1,MAKEAREAX+4,MAKEAREAY+1
Put Block N2,MAKEAREAX+98-D,MAKEAREAY+76
Put Block S1,MAKEAREAX+3+DD,MAKEAREAY+12+DDD
Put Block S2,MAKEAREAX+96-D+E,MAKEAREAY+64+DDD
Get Block A,MAKEAREAX,MAKEAREAY,CDXSZ,CDYSZ
Inc N1 : Inc N2
If N1>85 : N1=73 : N2=99 : End If
Next A
'Do all suits and pics
Restore SUITDATA
S1=112 : S2=116 : C=0
For A=1 To 52
Put Block A,MAKEAREAX,MAKEAREAY
If A=11 or A=24 or A=37 or A=50 : JACK : End If
If A=12 or A=25 or A=38 or A=51 : QUEEN : End If
If A=13 or A=26 or A=39 or A=52 : KING : End If
Read HM
For S=1 To HM
Read X,Y
If Y<=40
Put Block S1,X+1,Y
End If
If Y>40
Put Block S2,X+1,Y
End If
Next S
Get Block A,MAKEAREAX,MAKEAREAY,CDXSZ,CDYSZ
Inc C
If C>12
C=0 : Restore SUITDATA
Inc S1 : Inc S2
End If
Next A
If Fire(JY)=0 : REDBACK : End If
If Fire(JY)=-1 : BLUEBACK : End If
For A=60 To 127 : Del Block A : Next A
End Proc
Procedure DEMO
Degree : X=0
For A=1 To 52 : Y#=Sin(X) : Put Block A,X,Y#*50+100 : Add X,11 : Next A
Add X,-11
For A=52 To 1 Step -1 : Y#=Sin(X) : Put Block 53,X,Y#*50+100
Add X,-11 : Next A : Radian : Cls 0
End Proc
NUMDATA:
Data 9,8,9,9,8,8,9,9,8,15,9,10,10
Data 9,8,9,9,8,9,8,9,9,15,8,10,10
SUITDATA:
Data 1,545,40
Data 2,545,8,545,72
Data 3,545,8,545,40,545,72
Data 4,518,8,572,8,518,72,572,72
Data 5,518,8,572,8,545,40,518,72,572,72
Data 6,518,8,572,8,518,40,572,40,518,72,572,72
Data 7,518,8,572,8,545,24,518,40,572,40,518,72,572,72
Data 8,518,8,572,8,545,24,518,40,572,40,545,56,518,72,572,72
Data 9,518,8,572,8,518,24,572,24,545,40,518,56,572,56,518,72,572,72
Data 10,518,8,572,8,545,24,518,24,572,24,518,56,572,56,545,56,518,72,572,72
Data 2,572,13,520,67
Data 2,574,13,518,67
Data 2,518,13,572,69
OPTIONDATA:
Data 11
Data " Play Hand 1 "," NO "," YES "
Data " Play Hand 2 "," NO "," YES "
Data " Play Hand 3 "," NO "," YES "
Data " Play Hand 4 "," NO "," YES "
Data "Change Player Name "," NO "," YES "
Data " Shuffle Each Hand "," NO "," YES "
Data " Joystick Guide "," On "," Off "
Data " Game Speed "," NORMAL "," TURBO "
Data "Change No. Players "," NO "," YES "
Data " SAVE Options "," NO "," YES "
Data " Quit Options "," NO "," YES "
INSTDATA:
Data "PONTOON Istructions"
Data "-------------------"
Data "Please use FIRE for more instructions or UP AND FIRE to Quit!."
Data ""
Data "Welcome to this version of Pontoon which is very similar to normal Pontoon."
Data "There are some differences however, which will be explained below."
Data "For complete newcomers to Pontoon, here is a brief outline of the rules."
Data "The main deal is 2 cards. You then have a choice of TWIST/BUY or STICK."
Data "STICK means you do not want any more cards. TWIST means you want another"
Data "card, which will be dealt face up for everyone to see."
Data "BUY will deal you a card face down at a cost of �1O. NOTE: YOUR cards are"
Data "always dealt face up!. (SEE BELOW)"
Data "You can keep Twisting or Buying cards until you have a maximum of 5 cards"
Data "or until you are BUST. BUST means your cards add up to over 21 which is too"
Data "many!."
Data "An ACE has a value of 1 OR 11. Cards 2 to 1O are valued 2 to 1O."
Data "All picture cards, (Jack,Queen,King), are also valued at 1O."
Data "The winner of a hand, is the player with the highest value."
Data "The lowest you can STICK at is 15 and the highest is 21."
Data "A hand of 5 cards which has a total value of 21 or less is called A 5 Card"
Data "Trick and this beats 21, (NOTE: This is the ONLY instance where a value of"
Data "below 15 is allowed as a winning hand). This game WILL allow you to stick"
Data "below 15 at any time, but you CANNOT win unless you have a 5 card trick!."
Data "Any card with a value of 1O and an Ace is known as PONTOON and cannot be"
Data "beaten."
Data ""
Data " Game Instructions follow..."
Data ""
Data "The Following Instructions often refer to OPTIONS. This is selectable by"
Data "you at the end of a hand and allows many user changes to the game."
Data "You can play Any one hand or even all the hands from 1 to 4. If you"
Data "select to play no hands, the computer will play them all, (Auto mode)."
Data "Auto Mode can only be stopped at the end of a hand, so HOLD DOWN fire until"
Data "the Joystick Controls re-appear. In Options, players are numbered from"
Data "1 to 4. Player 1 is CHRIS,2 TOM,3 DICK,4 HARRY, although you can change any"
Data "of the above names. Player 1 is Dealt to first and also Bets. If he wins the"
Data "hand, he will be Dealt to first again and also Bet. If another player wins"
Data "the hand, it is their turn for the Bet etc. When 1 or more Players have the"
Data "same winning hand, they alone must Replay for the Pot and no further Bet is"
Data "made. NOTE: If YOU are not playing in a Replay, there is no need to use FIRE."
Data "The players will continue until one of them has won. This will also happen"
Data "when you are out of the game. The other players will continue alone although"
Data "this can be paused/stopped by holding down Fire before the end of a hand."
Data "If you have no cash left and all players Bust during a Replay, you will have"
Data "one more chance to play a hand with NO bet after the Pot Stays message."
Data "If all Players are Bust, the Pot stays, and another hand and Bet is played."
Data "This can result in a very large Pot for the winner. There is only one Bet"
Data "each hand. The minimum Bet is �5O and the maximum is your Cash or �2OO."
Data "You CANNOT Bet more than the Cash of the losing Player. This game can play in"
Data "either Normal or TURBO speed, TURBO should be used once you get used to it."
Data "SHUFFLE can be set on or off. If off, which is default, there will only be a"
Data "SHUFFLE before a New Game. The cards are always collected to the bottom of the"
Data "pack, so SHUFFLE off will allow them to come round again. SHUFFLE on, will"
Data "SHUFFLE after every hand. The number of players can be changed from 2,3 or 4."
Data "This will be delayed when a Replay is in progress etc. New players coming into"
Data "the game will have �5OO to start!. If you select New Game, the player with the"
Data "highest cash is the winner. This does NOT include you...."
Data "(NO cheating is permitted heh heh!). A card may be Bought at a cost of �1O"
Data "and is not seen by the rest of the players although ALL your cards are dealt"
Data "face up of course."
Data "The on screen joystick guide can be selected to off and will never be shown."
Data "Although it wont be displayed, Joystick UP will still bring up Options and"
Data "all other controls are as normal."
Data "Your oponents cards are sorted before their final show at the end of the hand."
Data "Your cards are sorted just after recieving a card as you will see."
Data "When Change Player Name is selected, you will be presented with each name in"
Data "turn. If you do not wish to change a name, press Fire and the next name will"
Data "be presented, (any name with less than 2 letters is ignored)."
Data "UP and DOWN will move from A-Z or Z-A. The _ character represents a space."
Data "LEFT and RIGHT moves along the name, and FIRE enters the name."
Data "The small Boxes at the bottom right of the screen are as follows..."
Data "The top one is the Pot. This shows the Pot of course."
Data "The second box displays the last person who made a bet."
Data "The third shows the last Bet made. It is also used when YOU make your own"
Data "bet."
Data "When New Game is requested and you use joystick UP to confirm it, holding"
Data "the fire button down as well, will change currency from � to $ or $ to �"
Data "in the next game. Also after a New Game has been requested, the full pack"
Data "will be spread accross the screen before the shuffle. Holding down Fire"
Data "allows you to pause this and examine the Pack if required."
Data "At the start of the game, when the title is shown, holding down fire"
Data "until the game starts will result in Blue backed cards. Red is default."
Data "Selecting Save Options will save all your changes onto disk and will be used"
Data "in all future games...."
Data "Remember to use a COPY!, and to have the DISK WRITE PROTECT off!."
Data ""
Data " THE END"
Data ""
Data " Please use Joystick UP/FIRE to continue"
Data "DONE"